home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / prolog_2.zip / PUZZLES.ZIP / NEW_LIST.PRO < prev    next >
Text File  |  1987-05-30  |  1KB  |  26 lines

  1.    
  2.          /* 
  3.             The following PROLOG program can  be  used  to  append  and 
  4.             delete items from a list.  This  program  defines a functor 
  5.             newlist  which  will  insert an element in the front of the 
  6.             original list if it is not already in the  list,  but  will 
  7.             delete it from the list if it is already in the list.
  8.          */
  9.  
  10.          member(X, [X|_]).
  11.          member(X, [_|Z]) :- member(X, Z).
  12.  
  13.          append([], L, L).
  14.          append([X|L1], L2, [X|L3]) :- append(L1, L2, L3).
  15.  
  16.          delete(X, L, L1) :- append(L2, [X|L3], L), append(L2, L3, L1).
  17.  
  18.          newlist(Element_X, Old_List, New_List) :- 
  19.              member(Element_X, Old_List),
  20.              delete(Element_X, Old_List, New_List),
  21.              !.
  22.  
  23.          newlist(Element_X, Old_List, New_List) :-
  24.              append([Element_X], Old_List, New_List).
  25.  
  26.